home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Linux / Kubuntu 8.10 / kubuntu-8.10-desktop-i386.iso / casper / filesystem.squashfs / usr / sbin / grub-reboot < prev    next >
Text File  |  2008-10-21  |  1KB  |  91 lines

  1. #!/bin/sh -e
  2.  
  3. NAME=grub-reboot
  4. VERSION=0.01
  5.  
  6. if ! test -n "$1" || test "$1" = "-h" || test "$1" = "--help" ; then
  7.   echo $NAME
  8.   echo
  9.   echo "Reboots into the specified OS entry in menu.lst"
  10.   echo
  11.   echo "Usage: $0 entry [options to grub]"
  12.   echo "       (where \"entry\" is the entry number in menu.lst)"
  13.   echo
  14.   exit
  15. fi
  16.  
  17. if test "$1" = "-v" || test "$1" = "--version" ; then
  18.   echo $NAME $VERSION
  19.   exit
  20. fi
  21.  
  22. if test "`whoami`" != "root" ; then
  23.   echo "You must be root"
  24.   exit
  25. fi
  26.  
  27. abort() {
  28.        message=$@
  29.  
  30.        echo >&2
  31.        echo -e "$message" >&2
  32.        echo >&2
  33.        exit 1
  34. }
  35.  
  36. find_grub_dir ()
  37. {
  38.     echo  -n "Searching for GRUB installation directory ... " >&2
  39.  
  40.     for d in $grub_dirs ; do
  41.         if [ -d "$d" ] ; then
  42.             grub_dir="$d"
  43.             break
  44.         fi
  45.     done
  46.     
  47.     if [ -z "$grub_dir" ] ; then
  48.         abort "No GRUB directory found.\n###"
  49.     else
  50.         echo "found: $grub_dir" >&2
  51.     fi
  52.  
  53.     echo $grub_dir
  54. }
  55.  
  56. grub_dirs="/boot/grub /boot/boot/grub"
  57.  
  58. grub_dir=$(find_grub_dir)
  59.  
  60. config_file=$grub_dir/menu.lst
  61.  
  62. default_file=$grub_dir/default
  63.  
  64. default="$1" ; shift
  65. grub --batch --config-file=$config_file $@ <<EOT
  66. savedefault --once --default=$default
  67. quit
  68. EOT
  69.  
  70. echo "
  71. #
  72. #
  73. #
  74. #
  75. #
  76. #
  77. #
  78. #
  79. #
  80. #
  81. # WARNING: If you want to edit this file directly, do not remove any line
  82. # from this file, including this warning. Using \`grub-set-default\' is
  83. # strongly recommended." >> $default_file
  84.  
  85. echo
  86. echo -n "Do you want to reboot now? [y/N] "
  87. read REBOOT
  88. case $REBOOT in
  89.   y*|Y*) reboot ;;
  90. esac
  91.